#ifndef DYN_FUNCTOR_H
#define DYN_FUNCTOR_H

/*! \brief This abstact classes defines functors to
 * be used to define mathematical function by deriving classes
 * from this one.
 *
 * These will be used to define functions in the main code.
 */

class Functor
{
public:
    Functor(){}

    /*! Pure virtual function that has to be reimplemented in all
     * derived classes; namely, functions in the numerical code.
     * It allows to evaluate a function at a point using
     * the natural functional notation f(x).
     */
    virtual double operator() (const double x) = 0;
};

#endif // DYN_FUNCTOR_H
